package com.springmq.mq.thread.syn;

import lombok.extern.slf4j.Slf4j;
import org.omg.PortableInterceptor.INACTIVE;

/**
 * @ClassName : Chicken
 * @Author : lby
 * @Date: 2021/2/1 16:05
 * @Description : 进程通信
 * 生产者，消费之
 */
public class Chicken {
    /**
     * 产品总数
     */
    public Integer chickenNumbers=10;

    /**
     * 购买数量
     */
    public Integer numbers=2;

    /**
     * 缓冲区
     * 最多只允许10
     */
    Integer[] buffer=new Integer[10];

}


/**
 * 生产者
 */
@Slf4j
class Provider{

    public void  providerChickens(Chicken chicken){
        log.info("当前数量:{}",chicken.chickenNumbers);
        chicken.chickenNumbers++;
    }

}

/**
 * 消费者
 */
@Slf4j
class Customer{

    /**
     * 消费者购买
     */
    public void buyChickens(Chicken chicken){
        // 减去消费者购买的数量
        if (chicken.chickenNumbers>=chicken.numbers){
            chicken.chickenNumbers--;
            log.info("当前数量:{},需要购买数量:{}",chicken.chickenNumbers,chicken.numbers);
        }else {
            // 数量不够，需要生产
            log.info("需要生产");
        }
    }
}
